package com.wzh.test;

/**
 * 老鼠迷宫问题
 * 8行7列的一个迷宫，四周都是围墙，第三行第一列，第三行第二列也是墙
 * 有一只老鼠在第二行第二列的位置，
 * 现在老鼠想去第7行第六列，请问，路线是什么
 */
public class MouseMazeDemo {
    public static void main(String[] args) {
        //定义迷宫，0代表空，1代表墙
        int[][] maze = new int[8][7];
        //第一行都是墙,最后一行都是墙
        for (int i = 0; i < 7; i++) {
            maze[0][i] = 1;
            maze[7][i] = 1;
        }
        //第一列，最后一列都是墙
        for (int i = 0; i < 8; i++) {
            maze[i][0] = 1;
            maze[i][6] = 1;
        }
        //第三行，第二例；第三行，第三列是墙
        maze[2][1] = 1;
        maze[2][2] = 1;
        //打印maze
        printArray(maze);
        //小老鼠当前的位置
        int row = 1;
        int col = 1;
        //2代表老鼠的路线
        maze[1][1] = 2;
        mouseToNext(maze, row, col+1);
        printArray(maze);
    }

    private static void mouseToNext(int[][] maze, int row, int col) {
//        if (row < 6) {
//            row++;
//        }
//        if (col < 5) {
//            col++;
//        }
        if (row == 6 && col == 5) {
            System.out.println("success");
        }

        if (maze[row][col] == 0) {
            maze[row][col] = 2;
            if(row < 6){
                row = row + 1;
                mouseToNext(maze,row,col);
            }else if(col < 5){
                col = col + 1;
                mouseToNext(maze,row,col);
            }

        } else if (maze[row][col] == 1) {
            row = row - 1;
            col = col + 1;
            mouseToNext(maze,row,col);
        }
    }

    public static void printArray(int[][] maze) {
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 7; j++) {
                System.out.print(maze[i][j] + "\t");
            }
            System.out.println();
        }
    }
}
